
from utils.logger import logger
import os
from ragflow_tools.api import RagflowAPI
from utils import file_util


def upload_kb_file_batch(ragflow_doc_dir:str, ragflow_doc_suffix:str) -> tuple[bool, str]:
    """
    上传知识库文件
    :param dirPath: 文件路径目录下的所有文件
    :return: 上传成功返回(True, "上传成功")，上传失败返回(False, "上传失败")
    """

    # 检查 dir 是否存在
    if not os.path.exists(ragflow_doc_dir):
        raise Exception(f"文件路径目录不存在：{ragflow_doc_dir}")
    ragflowAPI = RagflowAPI()
    # 运行前测试API连接
    status, msg = ragflowAPI.check_api_url()
    if not status:
        raise Exception(msg)
    files = file_util.get_files(ragflow_doc_dir, str(ragflow_doc_suffix).split(","))
    logger.info("FILES: ", len(files))
    for i in range(0, len(files), 10):
        logger.info("upload file: ", files[i:i+10])
        ragflowAPI.upload_kb_file(files[i:i+10])
    logger.info("end upload KB file")
    return True, "上传成功"